LGF_MatrixAddition (FC / V3.0.1)


Author: Siemens Digital Industries

Short description

This block adds two matrices of equal size of the data type ARRAY[*,*] of LREAL.

The individual fields of the two incoming matrices are read, added and then output in the matrix matrixResult.

result = \begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \vdots & \ddots & \vdots \\ a_{m1} & \cdots & a_{mn} \end{bmatrix} + \begin{bmatrix} b_{11} & \cdots & b_{1n} \\ \vdots & \ddots & \vdots \\ b_{m1} & \cdots & b_{mn} \end{bmatrix} = \begin{bmatrix} a_{11}+b_{11} & \cdots & a_{1n}+b_{1n} \\ \vdots & \ddots & \vdots \\ a_{m1}+b_{m1} & \cdots & a_{mn}+b_{mn} \end{bmatrix}
Note
Note that all input and output matrices must have the same low and high limits and therefore the same number of columns and rows.

Block Interface

LGF_MatrixAddition (FC)
   Ret_Val  Void
    
   error  Bool
    
   status  Word
    
Array[*, *] of LReal  matrix1  Array[*, *] of LReal
       
Array[*, *] of LReal  matrix2  Array[*, *] of LReal
       
Array[*, *] of LReal  matrixResult  Array[*, *] of LReal
       
   

Output parameter

IdentifierData typeDescription
Ret_ValVoidVoid - Function has no return value
errorBoolFALSE: No error
TRUE: An error occurred during the execution of the FB
statusWord16#0000-16#7FFF: Status of the FB
16#8000-16#FFFF: Error identification (see following Table)

In/Out parameter

IdentifierData typeDescription
matrix1Array[*, *] of LRealFirst summand (matrix)
matrix2Array[*, *] of LRealSecond summand (matrix)
matrixResultArray[*, *] of LRealSum of the matrices

Status & Error codes

Code / ValueIdentifier / Description
16#0000STATUS_NO_ERROR
Execution finished without errors
16#8200ERR_MATR1_LOWBOUND_ROWS_MATR2_LOWBOUND_ROWS
Error: Matrix1 lower bound rows(Dim1) size is different with Matrix2 lower bound rows(Dim1)
16#8201ERR_MATR1_LOWBOUND_ROWS_RESMATR_LOWBOUND_ROWS
Error: Matrix1 lower bound rows(Dim1) size is different with Result Matrix lower bound rows(Dim1)
16#8202ERR_MATR1_LOWBOUND_COLUMNS_MATR2_LOWBOUND_COLUMNS
Error: Matrix1 lower bound columns(Dim2) size is different with Matrix 2 lower bound columns(Dim2)
16#8203ERR_MATR1_LOWBOUND_COLUMNS_RESMATR_LOWBOUND_COLUMNS
Error: Matrix1 lower bound columns(Dim2) size is different with Result Matrix lower bound columns(Dim2)
16#8204ERR_MATR1_UPPBOUND_ROWS_MATR2_UPPBOUND_ROWS
Error: Matrix1 upper bound rows(Dim1) size is different with Matrix2 upper bound rows(Dim1)
16#8205ERR_MATR1_UPPBOUND_ROWS_RESMATR_UPPBOUND_ROWS
Error: Matrix1 upper bound row(Dim1)s size is different with Result Matrix upper bound rows(Dim1)
16#8206ERR_MATR1_UPPBOUND_COLUMNS_MATR2_UPPBOUND_COLUMNS
Error: Matrix1 upper bound columns(Dim2) size is different with Matrix2 upper bound columns(Dim2)
16#8207ERR_MATR1_UPPBOUND_COLUMNS_RESMATR_UPPBOUND_COLUMNS
Error: Matrix1 upper bound columns(Dim2) size is different with Result Matrix upper bound columns(Dim2)

Change log

Version & DateChange description
01.00.00Siemens Industry Online Support
19.08.2015First released version
01.00.01Siemens Industry Online Support
02.01.2017Upgrade: TIA Portal V14 Update 1
02.00.00Siemens Industry Online Support
06.02.2017Functionality using Array[*,*]
02.00.01Siemens Industry Online Support
17.08.2018Upgrade: TIA V15 Update 2
02.00.02Siemens Industry Online Support
23.11.2018Upgrade: TIA V15.1
02.00.08Simatic Systems Support
13.11.2019Regions, comments and constants are added
Moved matrices to IO field.
03.00.00Simatic Systems Support
23.04.2020Set version to V3.0.0, harmonize the version of the whole library
03.00.01Simatic Systems Support
02.02.2020Insert documentation